<?php

@include_once("../config.php");
include_once(DAO."/Conexao.php");
include_once(ENTIDADE."/ItensPedido.php");

/**
 * Classe ItensPedidoDAO
 *
 * @author Falci
 * @package dao
 */
class ItensPedidoDAO {

    public function  __construct() {
        new Conexao();
    }

    public function inserir($item){
        $sql = "INSERT INTO itenspedido VALUES(0,".$item->getPedido().",".$item->getProduto().",".$item->getQtd().",".$item->getFuncionario().",".$item->getEntregue().");";
        return mysql_query($sql);
    }

    public function alterar($item){
        $sql = "UPDATE itenspedido SET pedido=".$item->getPedido().",
                                       produto=".$item->getProduto().",
                                       qtd=".$item->getQtd().",
                                       funcionario=".$item->getFuncionario().",
                                       entregue=".$item->getEntregue()."
                                 WHERE id=".$item->getId().";";

        return mysql_query($sql);
    }

    public function excluir($item){
        if(is_object($item)){
            $sql = "DELETE FROM itenspedido WHERE id=".$item->getId().";";
        } else {
            $sql = "DELETE FROM itenspedido WHERE id=$item;";
        }
        return mysql_query($sql);
    }

    public function listar($pedido){
        $array = Array();
        if(is_object($pedido)){
            $query = mysql_query("SELECT * FROM itenspedido WHERE pedido=".$pedido->getId()." ORDER BY id DESC;");
        } else {
            $query = mysql_query("SELECT * FROM itenspedido WHERE pedido=".$pedido." ORDER BY id DESC;");
        }
        while ($row = mysql_fetch_object($query)) {
            $item = new ItensPedido;
            $item->setId($row->id);
            $item->setPedido($row->pedido);
            $item->setProduto($row->produto);
            $item->setQtd($row->qtd);
            $item->setFuncionario($row->funcionario);
            $array []= $item;
        }

        return $array;
    }

    public function buscaPorRelatorio($relatorio='null'){
        $array = Array();
        $query = mysql_query("SELECT i.*, SUM(i.qtd) total
                              FROM itenspedido i, pedido p
                              WHERE p.relatorio=$relatorio
                              AND i.pedido=p.id
                              GROUP BY i.produto;");

        while ($row = mysql_fetch_object($query)) {
            $item = new ItensPedido;
            $item->setId($row->id);
            $item->setPedido($row->pedido);
            $item->setProduto($row->produto);
            $item->setQtd($row->total);
            $item->setFuncionario($row->funcionario);
            $array []= $item;
        }

        return $array;
    }

    public function buscaIgual($item) {
        if($item->getId() == null) $item->setId(0);

        $sql = "SELECT id FROM itenspedido WHERE id<>".$item->getId()." AND pedido=".$item->getPedido()." AND produto=".$item->getProduto().";";
        $query = mysql_query($sql);
        if(mysql_num_rows($query) == 0)
            return false;
        else
            return true;
    }

    public function buscaPorId($id){
        $item = new ItensPedido;

        $query = mysql_query("SELECT * FROM itenspedido WHERE id=$id;");
        while ($row = mysql_fetch_object($query)) {
            $item->setId($row->id);
            $item->setPedido($row->pedido);
            $item->setProduto($row->produto);
            $item->setQtd($row->qtd);
            $item->setFuncionario($row->funcionario);
        }

        return $item;
    }

    public function buscaPorProdPedido($produto,$pedido){
        $item = new ItensPedido;
        $query = mysql_query("SELECT * FROM itenspedido WHERE pedido=".$pedido->getId()." AND produto=".$produto->getId().";");

        if(mysql_num_rows($query) == 0) return false;

        while ($row = mysql_fetch_object($query)) {
            $item->setId($row->id);
            $item->setPedido($row->pedido);
            $item->setProduto($row->produto);
            $item->setQtd($row->qtd);
            $item->setFuncionario($row->funcionario);
        }

        return $item;
    }

    public function jaExiste($produto,$pedido,$idItemOld=null){
        if($idItemOld == null){
            return $this->buscaPorProdPedido($produto,$pedido);
        } else {
            $query = mysql_query("SELECT id FROM itenspedido WHERE pedido=".$pedido->getId()." AND produto=".$produto->getId().";");
            if(mysql_num_rows($query) == 0) return false;
            elseif(mysql_result($query, 0) == $idItemOld) return false;
            else return true;
        }
    }

    public function exiteItemNoPedido($pedido){
        if(is_object($pedido)){
            $query = mysql_query("SELECT id FROM itenspedido WHERE pedido=".$pedido->getId().";") or die(mysql_error()."-".$pedido->getId());
        } else {
            $query = mysql_query("SELECT id FROM itenspedido WHERE pedido=$pedido;") or die(mysql_error()."- $pedido");
        }
        $total = mysql_num_rows($query);
        if($total == 0){
            return false;
        } else {
            return true;
        }
    }
}
?>